﻿using UnityEngine;
using System;

namespace Obi
{

    [AddComponentMenu("Physics/Obi/Obi Foam Emitter", 1000)]
    [ExecuteInEditMode]
    [RequireComponent(typeof(ObiActor))]
    [DisallowMultipleComponent]
    public class ObiFoamEmitter : ObiFoamGenerator
    {
        public enum ShapeType
        {
            Cylinder = 0,
            Box = 1
        }

        [Header("Emission shape")] 
        public ShapeType shape;
        public Transform shapeTransform;
        public Vector3 shapeSize = Vector3.one;

        private float emissionAccumulator = 0;

        public int GetParticleNumberToEmit(float deltaTime)
        {
            emissionAccumulator += foamGenerationRate * deltaTime;
            int particles = (int)emissionAccumulator;
            emissionAccumulator -= particles;
            return particles;
        }

        public void Reset()
        {
            emissionAccumulator = 0;
        }
    }
}
